# 1. 具备django的运行环境
import os
import django

import script.generic_detail_html

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'meiduo_mall.settings')
django.setup()

from django.conf import settings

from django.template import loader
from apps.contents.models import ContentCategory
from utils.goods import get_categories

# 2. 定义一个生成首页的函数
def generic_index_html():
    # 得到首页的网页内容 写入 /root/front_end_pc/index.html中
    # 1. 到首页的模板对象
    tmplate = loader.get_template('index.html')

    # 2. 定义一个上下文字典
    # 2.1. 准备商品类别数据
    categories = get_categories()

    # 2.2 准备首页的广告数据
    contents = {}
    # 2.2.1 查出所有广告类别
    content_categories = ContentCategory.objects.all()
    # 2.2.2 遍历类别，查出类别下的广告
    for content_category in content_categories:
        contents[content_category.key] = content_category.content_set.order_by('sequence')
    # 2.3 构建上下文字典
    context = {
        'categories': categories,
        'contents': contents
    }

    # 3. 进行首页渲染，得到渲染后的Html字符串
    html_str = tmplate.render(context)
    print(html_str)

    #4. 写入文件 路径/root/front_end_pc/index.html
    with open(settings.INDEX_HTML_FILE_NAME, 'w', encoding='utf-8') as f:
        f.write(html_str)
        print('写入首页{}成功'.format(settings.INDEX_HTML_FILE_NAME))

# 3. 写测试代码进行测试
if __name__ == '__main__':
    generic_index_html()



